package com.gscitysfy.cus.drain.modules.duty.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.gscitysfy.cus.drain.modules.duty.entity.MoperDutyMnClasses;
import com.gscitysfy.cus.drain.modules.duty.entity.MoperDutyMnPeople;
import com.gscitysfy.cus.drain.modules.duty.entity.MoperDutyRlLog;
import com.gscitysfy.cus.drain.modules.duty.vo.MoperDutyRlLogVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author admin
 * @since 2022-03-28 15:38:59
 */
public interface MoperDutyRlLogMapper extends BaseMapper<MoperDutyRlLog> {
    /**
     * description:
     *
     * @param
     * @return {@link List<  MoperDutyMnPeople >}
     */
    List<MoperDutyMnPeople> allPeople();

    /**
     * description:
     *
     * @param coamClassessType
     * @return {@link List< MoperDutyMnClasses>}
     */
    List<MoperDutyMnClasses> allClassess(@Param("coamClassessType") String coamClassessType, @Param("coamClassessCode")String coamClassessCode, @Param("coamClassessStatu") Long coamClassessStatu);

    /**
     * description:
     *
     * @param coamClassessId
     * @return {@link String}
     */
    String getBcmc(@Param("coamClassessId") String coamClassessId);

    /**
     * description:
     *
     * @param coamDutyPersonId
     * @return {@link MoperDutyMnPeople}
     */
    MoperDutyMnPeople getPeople(@Param("coamDutyPersonId") String coamDutyPersonId);

    /**
     * description:
     *
     * @param page
     * @param startTime
     * @param endTime
     * @param rylx
     * @param bc
     * @param zbry
     * @param personId
     * @return {@link IPage< MoperDutyRlLog>}
     */
    IPage<MoperDutyRlLog> getAll(Page<MoperDutyRlLog> page, String startTime,  String endTime,  String rylx,  String bc,  String zbry,  List<String> personId);

    /**
     * description:
     *
     * @param coamPersonId
     * @return {@link MoperDutyRlLog}
     */
    MoperDutyRlLog getBc(@Param("coamPersonId") String coamPersonId);

    /**
     * description:
     *
     * @param coamClassessId
     * @param coamDutyDate
     * @return {@link List< String>}
     */
    List<String> getPeoples(@Param("coamClassessId") String coamClassessId, @Param("coamDutyDate") String coamDutyDate);

    /**
     * 查询与值班长同一班次下的值班人员
     * @param personId 值班人员
     * @return 值班人员ID集合
     */
    List<String> getPersonByDuty(@Param("personId") String personId);

    /**
     * description:
     *
     * @param id
     * @return {@link MoperDutyRlLog}
     */
    MoperDutyRlLog selectJl(@Param("id") String id);

    /**
     * 根据主键批量查询
     * @return
     */
    List<MoperDutyRlLogVo> listByIds(List<String> listIds);
}
